package com.java.example.util

import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.style.CharacterStyle
import android.text.style.ForegroundColorSpan
import java.util.regex.Pattern

/**
 * @author chenliuliu
 */
object TextUtilTools {
    /**
     * 关键字高亮显示
     *
     * @param target 需要高亮的关键字
     * @param text   需要显示的文字
     * @return spannable 处理完后的结果，记得不要toString()，否则没有效果
     */
    fun highlight(text: String?, target: String?, color: Int): SpannableStringBuilder {
        val spannable = SpannableStringBuilder(text)
        var span: CharacterStyle?
        val p = Pattern.compile(target!!)
        val m = p.matcher(text!!)
        while (m.find()) {
            span = ForegroundColorSpan(color)
            spannable.setSpan(span, m.start(), m.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
        }
        return spannable
    }
}
